/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package de.jadehs.cosima;

import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EEnum;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;

/**
 * <!-- begin-user-doc -->
 * The <b>Package</b> for the model.
 * It contains accessors for the meta objects to represent
 * <ul>
 *   <li>each class,</li>
 *   <li>each feature of each class,</li>
 *   <li>each enum,</li>
 *   <li>and each data type</li>
 * </ul>
 * <!-- end-user-doc -->
 * @see de.jadehs.cosima.CosimaFactory
 * @model kind="package"
 * @generated
 */
public interface CosimaPackage extends EPackage {
	/**
	 * The package name.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	String eNAME = "cosima";

	/**
	 * The package namespace URI.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	String eNS_URI = "http://www.jade-hs.de/cosima";

	/**
	 * The package namespace name.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	String eNS_PREFIX = "cosima";

	/**
	 * The singleton instance of the package.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	CosimaPackage eINSTANCE = de.jadehs.cosima.impl.CosimaPackageImpl.init();

	/**
	 * The meta object id for the '{@link de.jadehs.cosima.impl.CosimaImpl <em>Cosima</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see de.jadehs.cosima.impl.CosimaImpl
	 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getCosima()
	 * @generated
	 */
	int COSIMA = 0;

	/**
	 * The feature id for the '<em><b>Machine</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int COSIMA__MACHINE = 0;

	/**
	 * The feature id for the '<em><b>Programs</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int COSIMA__PROGRAMS = 1;

	/**
	 * The number of structural features of the '<em>Cosima</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int COSIMA_FEATURE_COUNT = 2;

	/**
	 * The meta object id for the '{@link de.jadehs.cosima.impl.MachineImpl <em>Machine</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see de.jadehs.cosima.impl.MachineImpl
	 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getMachine()
	 * @generated
	 */
	int MACHINE = 1;

	/**
	 * The feature id for the '<em><b>Components</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int MACHINE__COMPONENTS = 0;

	/**
	 * The number of structural features of the '<em>Machine</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int MACHINE_FEATURE_COUNT = 1;

	/**
	 * The meta object id for the '{@link de.jadehs.cosima.impl.ComponentImpl <em>Component</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see de.jadehs.cosima.impl.ComponentImpl
	 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getComponent()
	 * @generated
	 */
	int COMPONENT = 2;

	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int COMPONENT__NAME = 0;

	/**
	 * The number of structural features of the '<em>Component</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int COMPONENT_FEATURE_COUNT = 1;

	/**
	 * The meta object id for the '{@link de.jadehs.cosima.impl.TapeImpl <em>Tape</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see de.jadehs.cosima.impl.TapeImpl
	 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getTape()
	 * @generated
	 */
	int TAPE = 3;

	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TAPE__NAME = COMPONENT__NAME;

	/**
	 * The feature id for the '<em><b>Position</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TAPE__POSITION = COMPONENT_FEATURE_COUNT + 0;

	/**
	 * The feature id for the '<em><b>Input</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TAPE__INPUT = COMPONENT_FEATURE_COUNT + 1;

	/**
	 * The feature id for the '<em><b>Alphabet</b></em>' attribute list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TAPE__ALPHABET = COMPONENT_FEATURE_COUNT + 2;

	/**
	 * The number of structural features of the '<em>Tape</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TAPE_FEATURE_COUNT = COMPONENT_FEATURE_COUNT + 3;

	/**
	 * The meta object id for the '{@link de.jadehs.cosima.impl.StackImpl <em>Stack</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see de.jadehs.cosima.impl.StackImpl
	 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getStack()
	 * @generated
	 */
	int STACK = 4;

	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int STACK__NAME = COMPONENT__NAME;

	/**
	 * The feature id for the '<em><b>Input</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int STACK__INPUT = COMPONENT_FEATURE_COUNT + 0;

	/**
	 * The number of structural features of the '<em>Stack</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int STACK_FEATURE_COUNT = COMPONENT_FEATURE_COUNT + 1;

	/**
	 * The meta object id for the '{@link de.jadehs.cosima.impl.StatesRegisterImpl <em>States Register</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see de.jadehs.cosima.impl.StatesRegisterImpl
	 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getStatesRegister()
	 * @generated
	 */
	int STATES_REGISTER = 5;

	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int STATES_REGISTER__NAME = COMPONENT__NAME;

	/**
	 * The feature id for the '<em><b>States</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int STATES_REGISTER__STATES = COMPONENT_FEATURE_COUNT + 0;

	/**
	 * The number of structural features of the '<em>States Register</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int STATES_REGISTER_FEATURE_COUNT = COMPONENT_FEATURE_COUNT + 1;

	/**
	 * The meta object id for the '{@link de.jadehs.cosima.impl.StateImpl <em>State</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see de.jadehs.cosima.impl.StateImpl
	 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getState()
	 * @generated
	 */
	int STATE = 6;

	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int STATE__NAME = 0;

	/**
	 * The feature id for the '<em><b>Start</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int STATE__START = 1;

	/**
	 * The feature id for the '<em><b>Type</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int STATE__TYPE = 2;

	/**
	 * The number of structural features of the '<em>State</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int STATE_FEATURE_COUNT = 3;

	/**
	 * The meta object id for the '{@link de.jadehs.cosima.impl.ProgramImpl <em>Program</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see de.jadehs.cosima.impl.ProgramImpl
	 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getProgram()
	 * @generated
	 */
	int PROGRAM = 12;

	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PROGRAM__NAME = 0;

	/**
	 * The number of structural features of the '<em>Program</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PROGRAM_FEATURE_COUNT = 1;

	/**
	 * The meta object id for the '{@link de.jadehs.cosima.impl.TransitionsTableImpl <em>Transitions Table</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see de.jadehs.cosima.impl.TransitionsTableImpl
	 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getTransitionsTable()
	 * @generated
	 */
	int TRANSITIONS_TABLE = 7;

	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TRANSITIONS_TABLE__NAME = PROGRAM__NAME;

	/**
	 * The feature id for the '<em><b>Transitions</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TRANSITIONS_TABLE__TRANSITIONS = PROGRAM_FEATURE_COUNT + 0;

	/**
	 * The feature id for the '<em><b>Tape</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TRANSITIONS_TABLE__TAPE = PROGRAM_FEATURE_COUNT + 1;

	/**
	 * The feature id for the '<em><b>Active State</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TRANSITIONS_TABLE__ACTIVE_STATE = PROGRAM_FEATURE_COUNT + 2;

	/**
	 * The feature id for the '<em><b>States</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TRANSITIONS_TABLE__STATES = PROGRAM_FEATURE_COUNT + 3;

	/**
	 * The number of structural features of the '<em>Transitions Table</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TRANSITIONS_TABLE_FEATURE_COUNT = PROGRAM_FEATURE_COUNT + 4;

	/**
	 * The meta object id for the '{@link de.jadehs.cosima.impl.RegexImpl <em>Regex</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see de.jadehs.cosima.impl.RegexImpl
	 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getRegex()
	 * @generated
	 */
	int REGEX = 8;

	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int REGEX__NAME = PROGRAM__NAME;

	/**
	 * The feature id for the '<em><b>Expression</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int REGEX__EXPRESSION = PROGRAM_FEATURE_COUNT + 0;

	/**
	 * The feature id for the '<em><b>Tape</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int REGEX__TAPE = PROGRAM_FEATURE_COUNT + 1;

	/**
	 * The number of structural features of the '<em>Regex</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int REGEX_FEATURE_COUNT = PROGRAM_FEATURE_COUNT + 2;

	/**
	 * The meta object id for the '{@link de.jadehs.cosima.impl.GrammarImpl <em>Grammar</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see de.jadehs.cosima.impl.GrammarImpl
	 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getGrammar()
	 * @generated
	 */
	int GRAMMAR = 9;

	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int GRAMMAR__NAME = PROGRAM__NAME;

	/**
	 * The number of structural features of the '<em>Grammar</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int GRAMMAR_FEATURE_COUNT = PROGRAM_FEATURE_COUNT + 0;

	/**
	 * The meta object id for the '{@link de.jadehs.cosima.impl.LoopImpl <em>Loop</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see de.jadehs.cosima.impl.LoopImpl
	 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getLoop()
	 * @generated
	 */
	int LOOP = 10;

	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int LOOP__NAME = PROGRAM__NAME;

	/**
	 * The number of structural features of the '<em>Loop</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int LOOP_FEATURE_COUNT = PROGRAM_FEATURE_COUNT + 0;

	/**
	 * The meta object id for the '{@link de.jadehs.cosima.impl.WhileImpl <em>While</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see de.jadehs.cosima.impl.WhileImpl
	 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getWhile()
	 * @generated
	 */
	int WHILE = 11;

	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int WHILE__NAME = PROGRAM__NAME;

	/**
	 * The number of structural features of the '<em>While</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int WHILE_FEATURE_COUNT = PROGRAM_FEATURE_COUNT + 0;

	/**
	 * The meta object id for the '{@link de.jadehs.cosima.impl.TransitionImpl <em>Transition</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see de.jadehs.cosima.impl.TransitionImpl
	 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getTransition()
	 * @generated
	 */
	int TRANSITION = 13;

	/**
	 * The feature id for the '<em><b>Start</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TRANSITION__START = 0;

	/**
	 * The feature id for the '<em><b>End</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TRANSITION__END = 1;

	/**
	 * The feature id for the '<em><b>Start Instructions</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TRANSITION__START_INSTRUCTIONS = 2;

	/**
	 * The feature id for the '<em><b>End Instructions</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TRANSITION__END_INSTRUCTIONS = 3;

	/**
	 * The number of structural features of the '<em>Transition</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TRANSITION_FEATURE_COUNT = 4;

	/**
	 * The meta object id for the '{@link de.jadehs.cosima.impl.TuringImpl <em>Turing</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see de.jadehs.cosima.impl.TuringImpl
	 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getTuring()
	 * @generated
	 */
	int TURING = 14;

	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TURING__NAME = PROGRAM__NAME;

	/**
	 * The number of structural features of the '<em>Turing</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TURING_FEATURE_COUNT = PROGRAM_FEATURE_COUNT + 0;

	/**
	 * The meta object id for the '{@link de.jadehs.cosima.impl.ExpressionImpl <em>Expression</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see de.jadehs.cosima.impl.ExpressionImpl
	 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getExpression()
	 * @generated
	 */
	int EXPRESSION = 15;

	/**
	 * The number of structural features of the '<em>Expression</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int EXPRESSION_FEATURE_COUNT = 0;

	/**
	 * The meta object id for the '{@link de.jadehs.cosima.impl.ORExpressionImpl <em>OR Expression</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see de.jadehs.cosima.impl.ORExpressionImpl
	 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getORExpression()
	 * @generated
	 */
	int OR_EXPRESSION = 16;

	/**
	 * The feature id for the '<em><b>Left</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int OR_EXPRESSION__LEFT = EXPRESSION_FEATURE_COUNT + 0;

	/**
	 * The feature id for the '<em><b>Right</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int OR_EXPRESSION__RIGHT = EXPRESSION_FEATURE_COUNT + 1;

	/**
	 * The number of structural features of the '<em>OR Expression</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int OR_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 2;

	/**
	 * The meta object id for the '{@link de.jadehs.cosima.impl.KleeneExpressionImpl <em>Kleene Expression</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see de.jadehs.cosima.impl.KleeneExpressionImpl
	 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getKleeneExpression()
	 * @generated
	 */
	int KLEENE_EXPRESSION = 17;

	/**
	 * The feature id for the '<em><b>Child Expression</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int KLEENE_EXPRESSION__CHILD_EXPRESSION = EXPRESSION_FEATURE_COUNT + 0;

	/**
	 * The number of structural features of the '<em>Kleene Expression</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int KLEENE_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1;

	/**
	 * The meta object id for the '{@link de.jadehs.cosima.impl.CharExpressionImpl <em>Char Expression</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see de.jadehs.cosima.impl.CharExpressionImpl
	 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getCharExpression()
	 * @generated
	 */
	int CHAR_EXPRESSION = 18;

	/**
	 * The feature id for the '<em><b>Input</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int CHAR_EXPRESSION__INPUT = EXPRESSION_FEATURE_COUNT + 0;

	/**
	 * The number of structural features of the '<em>Char Expression</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int CHAR_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1;

	/**
	 * The meta object id for the '{@link de.jadehs.cosima.impl.ANDExpressionImpl <em>AND Expression</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see de.jadehs.cosima.impl.ANDExpressionImpl
	 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getANDExpression()
	 * @generated
	 */
	int AND_EXPRESSION = 19;

	/**
	 * The feature id for the '<em><b>Left</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int AND_EXPRESSION__LEFT = EXPRESSION_FEATURE_COUNT + 0;

	/**
	 * The feature id for the '<em><b>Right</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int AND_EXPRESSION__RIGHT = EXPRESSION_FEATURE_COUNT + 1;

	/**
	 * The number of structural features of the '<em>AND Expression</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int AND_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 2;

	/**
	 * The meta object id for the '{@link de.jadehs.cosima.impl.StringExpressionImpl <em>String Expression</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see de.jadehs.cosima.impl.StringExpressionImpl
	 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getStringExpression()
	 * @generated
	 */
	int STRING_EXPRESSION = 20;

	/**
	 * The feature id for the '<em><b>Input</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int STRING_EXPRESSION__INPUT = EXPRESSION_FEATURE_COUNT + 0;

	/**
	 * The number of structural features of the '<em>String Expression</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int STRING_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1;

	/**
	 * The meta object id for the '{@link de.jadehs.cosima.impl.MultiStateImpl <em>Multi State</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see de.jadehs.cosima.impl.MultiStateImpl
	 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getMultiState()
	 * @generated
	 */
	int MULTI_STATE = 21;

	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int MULTI_STATE__NAME = STATE__NAME;

	/**
	 * The feature id for the '<em><b>Start</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int MULTI_STATE__START = STATE__START;

	/**
	 * The feature id for the '<em><b>Type</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int MULTI_STATE__TYPE = STATE__TYPE;

	/**
	 * The feature id for the '<em><b>States</b></em>' reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int MULTI_STATE__STATES = STATE_FEATURE_COUNT + 0;

	/**
	 * The number of structural features of the '<em>Multi State</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int MULTI_STATE_FEATURE_COUNT = STATE_FEATURE_COUNT + 1;

	/**
	 * The meta object id for the '{@link de.jadehs.cosima.impl.InstructionImpl <em>Instruction</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see de.jadehs.cosima.impl.InstructionImpl
	 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getInstruction()
	 * @generated
	 */
	int INSTRUCTION = 22;

	/**
	 * The number of structural features of the '<em>Instruction</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int INSTRUCTION_FEATURE_COUNT = 0;

	/**
	 * The meta object id for the '{@link de.jadehs.cosima.impl.TapeInstructionImpl <em>Tape Instruction</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see de.jadehs.cosima.impl.TapeInstructionImpl
	 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getTapeInstruction()
	 * @generated
	 */
	int TAPE_INSTRUCTION = 23;

	/**
	 * The feature id for the '<em><b>Tape</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TAPE_INSTRUCTION__TAPE = INSTRUCTION_FEATURE_COUNT + 0;

	/**
	 * The number of structural features of the '<em>Tape Instruction</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TAPE_INSTRUCTION_FEATURE_COUNT = INSTRUCTION_FEATURE_COUNT + 1;

	/**
	 * The meta object id for the '{@link de.jadehs.cosima.impl.ReadFromTapeImpl <em>Read From Tape</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see de.jadehs.cosima.impl.ReadFromTapeImpl
	 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getReadFromTape()
	 * @generated
	 */
	int READ_FROM_TAPE = 24;

	/**
	 * The feature id for the '<em><b>Tape</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int READ_FROM_TAPE__TAPE = TAPE_INSTRUCTION__TAPE;

	/**
	 * The feature id for the '<em><b>Symbol</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int READ_FROM_TAPE__SYMBOL = TAPE_INSTRUCTION_FEATURE_COUNT + 0;

	/**
	 * The number of structural features of the '<em>Read From Tape</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int READ_FROM_TAPE_FEATURE_COUNT = TAPE_INSTRUCTION_FEATURE_COUNT + 1;

	/**
	 * The meta object id for the '{@link de.jadehs.cosima.impl.WriteToTapeImpl <em>Write To Tape</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see de.jadehs.cosima.impl.WriteToTapeImpl
	 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getWriteToTape()
	 * @generated
	 */
	int WRITE_TO_TAPE = 25;

	/**
	 * The feature id for the '<em><b>Tape</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int WRITE_TO_TAPE__TAPE = TAPE_INSTRUCTION__TAPE;

	/**
	 * The feature id for the '<em><b>Symbol</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int WRITE_TO_TAPE__SYMBOL = TAPE_INSTRUCTION_FEATURE_COUNT + 0;

	/**
	 * The number of structural features of the '<em>Write To Tape</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int WRITE_TO_TAPE_FEATURE_COUNT = TAPE_INSTRUCTION_FEATURE_COUNT + 1;

	/**
	 * The meta object id for the '{@link de.jadehs.cosima.impl.MoveTapeLeftImpl <em>Move Tape Left</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see de.jadehs.cosima.impl.MoveTapeLeftImpl
	 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getMoveTapeLeft()
	 * @generated
	 */
	int MOVE_TAPE_LEFT = 26;

	/**
	 * The feature id for the '<em><b>Tape</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int MOVE_TAPE_LEFT__TAPE = TAPE_INSTRUCTION__TAPE;

	/**
	 * The number of structural features of the '<em>Move Tape Left</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int MOVE_TAPE_LEFT_FEATURE_COUNT = TAPE_INSTRUCTION_FEATURE_COUNT + 0;

	/**
	 * The meta object id for the '{@link de.jadehs.cosima.impl.MoveTapeRightImpl <em>Move Tape Right</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see de.jadehs.cosima.impl.MoveTapeRightImpl
	 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getMoveTapeRight()
	 * @generated
	 */
	int MOVE_TAPE_RIGHT = 27;

	/**
	 * The feature id for the '<em><b>Tape</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int MOVE_TAPE_RIGHT__TAPE = TAPE_INSTRUCTION__TAPE;

	/**
	 * The number of structural features of the '<em>Move Tape Right</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int MOVE_TAPE_RIGHT_FEATURE_COUNT = TAPE_INSTRUCTION_FEATURE_COUNT + 0;

	/**
	 * The meta object id for the '{@link de.jadehs.cosima.StateType <em>State Type</em>}' enum.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see de.jadehs.cosima.StateType
	 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getStateType()
	 * @generated
	 */
	int STATE_TYPE = 28;

	/**
	 * Returns the meta object for class '{@link de.jadehs.cosima.Cosima <em>Cosima</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Cosima</em>'.
	 * @see de.jadehs.cosima.Cosima
	 * @generated
	 */
	EClass getCosima();

	/**
	 * Returns the meta object for the containment reference '{@link de.jadehs.cosima.Cosima#getMachine <em>Machine</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference '<em>Machine</em>'.
	 * @see de.jadehs.cosima.Cosima#getMachine()
	 * @see #getCosima()
	 * @generated
	 */
	EReference getCosima_Machine();

	/**
	 * Returns the meta object for the containment reference list '{@link de.jadehs.cosima.Cosima#getPrograms <em>Programs</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Programs</em>'.
	 * @see de.jadehs.cosima.Cosima#getPrograms()
	 * @see #getCosima()
	 * @generated
	 */
	EReference getCosima_Programs();

	/**
	 * Returns the meta object for class '{@link de.jadehs.cosima.Machine <em>Machine</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Machine</em>'.
	 * @see de.jadehs.cosima.Machine
	 * @generated
	 */
	EClass getMachine();

	/**
	 * Returns the meta object for the containment reference list '{@link de.jadehs.cosima.Machine#getComponents <em>Components</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Components</em>'.
	 * @see de.jadehs.cosima.Machine#getComponents()
	 * @see #getMachine()
	 * @generated
	 */
	EReference getMachine_Components();

	/**
	 * Returns the meta object for class '{@link de.jadehs.cosima.Component <em>Component</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Component</em>'.
	 * @see de.jadehs.cosima.Component
	 * @generated
	 */
	EClass getComponent();

	/**
	 * Returns the meta object for the attribute '{@link de.jadehs.cosima.Component#getName <em>Name</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Name</em>'.
	 * @see de.jadehs.cosima.Component#getName()
	 * @see #getComponent()
	 * @generated
	 */
	EAttribute getComponent_Name();

	/**
	 * Returns the meta object for class '{@link de.jadehs.cosima.Tape <em>Tape</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Tape</em>'.
	 * @see de.jadehs.cosima.Tape
	 * @generated
	 */
	EClass getTape();

	/**
	 * Returns the meta object for the attribute '{@link de.jadehs.cosima.Tape#getPosition <em>Position</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Position</em>'.
	 * @see de.jadehs.cosima.Tape#getPosition()
	 * @see #getTape()
	 * @generated
	 */
	EAttribute getTape_Position();

	/**
	 * Returns the meta object for the attribute '{@link de.jadehs.cosima.Tape#getInput <em>Input</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Input</em>'.
	 * @see de.jadehs.cosima.Tape#getInput()
	 * @see #getTape()
	 * @generated
	 */
	EAttribute getTape_Input();

	/**
	 * Returns the meta object for the attribute list '{@link de.jadehs.cosima.Tape#getAlphabet <em>Alphabet</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute list '<em>Alphabet</em>'.
	 * @see de.jadehs.cosima.Tape#getAlphabet()
	 * @see #getTape()
	 * @generated
	 */
	EAttribute getTape_Alphabet();

	/**
	 * Returns the meta object for class '{@link de.jadehs.cosima.Stack <em>Stack</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Stack</em>'.
	 * @see de.jadehs.cosima.Stack
	 * @generated
	 */
	EClass getStack();

	/**
	 * Returns the meta object for the attribute '{@link de.jadehs.cosima.Stack#getInput <em>Input</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Input</em>'.
	 * @see de.jadehs.cosima.Stack#getInput()
	 * @see #getStack()
	 * @generated
	 */
	EAttribute getStack_Input();

	/**
	 * Returns the meta object for class '{@link de.jadehs.cosima.StatesRegister <em>States Register</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>States Register</em>'.
	 * @see de.jadehs.cosima.StatesRegister
	 * @generated
	 */
	EClass getStatesRegister();

	/**
	 * Returns the meta object for the containment reference list '{@link de.jadehs.cosima.StatesRegister#getStates <em>States</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>States</em>'.
	 * @see de.jadehs.cosima.StatesRegister#getStates()
	 * @see #getStatesRegister()
	 * @generated
	 */
	EReference getStatesRegister_States();

	/**
	 * Returns the meta object for class '{@link de.jadehs.cosima.State <em>State</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>State</em>'.
	 * @see de.jadehs.cosima.State
	 * @generated
	 */
	EClass getState();

	/**
	 * Returns the meta object for the attribute '{@link de.jadehs.cosima.State#getName <em>Name</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Name</em>'.
	 * @see de.jadehs.cosima.State#getName()
	 * @see #getState()
	 * @generated
	 */
	EAttribute getState_Name();

	/**
	 * Returns the meta object for the attribute '{@link de.jadehs.cosima.State#isStart <em>Start</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Start</em>'.
	 * @see de.jadehs.cosima.State#isStart()
	 * @see #getState()
	 * @generated
	 */
	EAttribute getState_Start();

	/**
	 * Returns the meta object for the attribute '{@link de.jadehs.cosima.State#getType <em>Type</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Type</em>'.
	 * @see de.jadehs.cosima.State#getType()
	 * @see #getState()
	 * @generated
	 */
	EAttribute getState_Type();

	/**
	 * Returns the meta object for class '{@link de.jadehs.cosima.TransitionsTable <em>Transitions Table</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Transitions Table</em>'.
	 * @see de.jadehs.cosima.TransitionsTable
	 * @generated
	 */
	EClass getTransitionsTable();

	/**
	 * Returns the meta object for the containment reference list '{@link de.jadehs.cosima.TransitionsTable#getTransitions <em>Transitions</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Transitions</em>'.
	 * @see de.jadehs.cosima.TransitionsTable#getTransitions()
	 * @see #getTransitionsTable()
	 * @generated
	 */
	EReference getTransitionsTable_Transitions();

	/**
	 * Returns the meta object for the reference '{@link de.jadehs.cosima.TransitionsTable#getTape <em>Tape</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Tape</em>'.
	 * @see de.jadehs.cosima.TransitionsTable#getTape()
	 * @see #getTransitionsTable()
	 * @generated
	 */
	EReference getTransitionsTable_Tape();

	/**
	 * Returns the meta object for the reference '{@link de.jadehs.cosima.TransitionsTable#getActiveState <em>Active State</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Active State</em>'.
	 * @see de.jadehs.cosima.TransitionsTable#getActiveState()
	 * @see #getTransitionsTable()
	 * @generated
	 */
	EReference getTransitionsTable_ActiveState();

	/**
	 * Returns the meta object for the reference '{@link de.jadehs.cosima.TransitionsTable#getStates <em>States</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>States</em>'.
	 * @see de.jadehs.cosima.TransitionsTable#getStates()
	 * @see #getTransitionsTable()
	 * @generated
	 */
	EReference getTransitionsTable_States();

	/**
	 * Returns the meta object for class '{@link de.jadehs.cosima.Regex <em>Regex</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Regex</em>'.
	 * @see de.jadehs.cosima.Regex
	 * @generated
	 */
	EClass getRegex();

	/**
	 * Returns the meta object for the containment reference '{@link de.jadehs.cosima.Regex#getExpression <em>Expression</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference '<em>Expression</em>'.
	 * @see de.jadehs.cosima.Regex#getExpression()
	 * @see #getRegex()
	 * @generated
	 */
	EReference getRegex_Expression();

	/**
	 * Returns the meta object for the reference '{@link de.jadehs.cosima.Regex#getTape <em>Tape</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Tape</em>'.
	 * @see de.jadehs.cosima.Regex#getTape()
	 * @see #getRegex()
	 * @generated
	 */
	EReference getRegex_Tape();

	/**
	 * Returns the meta object for class '{@link de.jadehs.cosima.Grammar <em>Grammar</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Grammar</em>'.
	 * @see de.jadehs.cosima.Grammar
	 * @generated
	 */
	EClass getGrammar();

	/**
	 * Returns the meta object for class '{@link de.jadehs.cosima.Loop <em>Loop</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Loop</em>'.
	 * @see de.jadehs.cosima.Loop
	 * @generated
	 */
	EClass getLoop();

	/**
	 * Returns the meta object for class '{@link de.jadehs.cosima.While <em>While</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>While</em>'.
	 * @see de.jadehs.cosima.While
	 * @generated
	 */
	EClass getWhile();

	/**
	 * Returns the meta object for class '{@link de.jadehs.cosima.Program <em>Program</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Program</em>'.
	 * @see de.jadehs.cosima.Program
	 * @generated
	 */
	EClass getProgram();

	/**
	 * Returns the meta object for the attribute '{@link de.jadehs.cosima.Program#getName <em>Name</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Name</em>'.
	 * @see de.jadehs.cosima.Program#getName()
	 * @see #getProgram()
	 * @generated
	 */
	EAttribute getProgram_Name();

	/**
	 * Returns the meta object for class '{@link de.jadehs.cosima.Transition <em>Transition</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Transition</em>'.
	 * @see de.jadehs.cosima.Transition
	 * @generated
	 */
	EClass getTransition();

	/**
	 * Returns the meta object for the reference '{@link de.jadehs.cosima.Transition#getStart <em>Start</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Start</em>'.
	 * @see de.jadehs.cosima.Transition#getStart()
	 * @see #getTransition()
	 * @generated
	 */
	EReference getTransition_Start();

	/**
	 * Returns the meta object for the reference '{@link de.jadehs.cosima.Transition#getEnd <em>End</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>End</em>'.
	 * @see de.jadehs.cosima.Transition#getEnd()
	 * @see #getTransition()
	 * @generated
	 */
	EReference getTransition_End();

	/**
	 * Returns the meta object for the containment reference list '{@link de.jadehs.cosima.Transition#getStartInstructions <em>Start Instructions</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Start Instructions</em>'.
	 * @see de.jadehs.cosima.Transition#getStartInstructions()
	 * @see #getTransition()
	 * @generated
	 */
	EReference getTransition_StartInstructions();

	/**
	 * Returns the meta object for the containment reference list '{@link de.jadehs.cosima.Transition#getEndInstructions <em>End Instructions</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>End Instructions</em>'.
	 * @see de.jadehs.cosima.Transition#getEndInstructions()
	 * @see #getTransition()
	 * @generated
	 */
	EReference getTransition_EndInstructions();

	/**
	 * Returns the meta object for class '{@link de.jadehs.cosima.Turing <em>Turing</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Turing</em>'.
	 * @see de.jadehs.cosima.Turing
	 * @generated
	 */
	EClass getTuring();

	/**
	 * Returns the meta object for class '{@link de.jadehs.cosima.Expression <em>Expression</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Expression</em>'.
	 * @see de.jadehs.cosima.Expression
	 * @generated
	 */
	EClass getExpression();

	/**
	 * Returns the meta object for class '{@link de.jadehs.cosima.ORExpression <em>OR Expression</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>OR Expression</em>'.
	 * @see de.jadehs.cosima.ORExpression
	 * @generated
	 */
	EClass getORExpression();

	/**
	 * Returns the meta object for the containment reference '{@link de.jadehs.cosima.ORExpression#getLeft <em>Left</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference '<em>Left</em>'.
	 * @see de.jadehs.cosima.ORExpression#getLeft()
	 * @see #getORExpression()
	 * @generated
	 */
	EReference getORExpression_Left();

	/**
	 * Returns the meta object for the containment reference '{@link de.jadehs.cosima.ORExpression#getRight <em>Right</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference '<em>Right</em>'.
	 * @see de.jadehs.cosima.ORExpression#getRight()
	 * @see #getORExpression()
	 * @generated
	 */
	EReference getORExpression_Right();

	/**
	 * Returns the meta object for class '{@link de.jadehs.cosima.KleeneExpression <em>Kleene Expression</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Kleene Expression</em>'.
	 * @see de.jadehs.cosima.KleeneExpression
	 * @generated
	 */
	EClass getKleeneExpression();

	/**
	 * Returns the meta object for the containment reference '{@link de.jadehs.cosima.KleeneExpression#getChildExpression <em>Child Expression</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference '<em>Child Expression</em>'.
	 * @see de.jadehs.cosima.KleeneExpression#getChildExpression()
	 * @see #getKleeneExpression()
	 * @generated
	 */
	EReference getKleeneExpression_ChildExpression();

	/**
	 * Returns the meta object for class '{@link de.jadehs.cosima.CharExpression <em>Char Expression</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Char Expression</em>'.
	 * @see de.jadehs.cosima.CharExpression
	 * @generated
	 */
	EClass getCharExpression();

	/**
	 * Returns the meta object for the attribute '{@link de.jadehs.cosima.CharExpression#getInput <em>Input</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Input</em>'.
	 * @see de.jadehs.cosima.CharExpression#getInput()
	 * @see #getCharExpression()
	 * @generated
	 */
	EAttribute getCharExpression_Input();

	/**
	 * Returns the meta object for class '{@link de.jadehs.cosima.ANDExpression <em>AND Expression</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>AND Expression</em>'.
	 * @see de.jadehs.cosima.ANDExpression
	 * @generated
	 */
	EClass getANDExpression();

	/**
	 * Returns the meta object for the containment reference '{@link de.jadehs.cosima.ANDExpression#getLeft <em>Left</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference '<em>Left</em>'.
	 * @see de.jadehs.cosima.ANDExpression#getLeft()
	 * @see #getANDExpression()
	 * @generated
	 */
	EReference getANDExpression_Left();

	/**
	 * Returns the meta object for the containment reference '{@link de.jadehs.cosima.ANDExpression#getRight <em>Right</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference '<em>Right</em>'.
	 * @see de.jadehs.cosima.ANDExpression#getRight()
	 * @see #getANDExpression()
	 * @generated
	 */
	EReference getANDExpression_Right();

	/**
	 * Returns the meta object for class '{@link de.jadehs.cosima.StringExpression <em>String Expression</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>String Expression</em>'.
	 * @see de.jadehs.cosima.StringExpression
	 * @generated
	 */
	EClass getStringExpression();

	/**
	 * Returns the meta object for the attribute '{@link de.jadehs.cosima.StringExpression#getInput <em>Input</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Input</em>'.
	 * @see de.jadehs.cosima.StringExpression#getInput()
	 * @see #getStringExpression()
	 * @generated
	 */
	EAttribute getStringExpression_Input();

	/**
	 * Returns the meta object for class '{@link de.jadehs.cosima.MultiState <em>Multi State</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Multi State</em>'.
	 * @see de.jadehs.cosima.MultiState
	 * @generated
	 */
	EClass getMultiState();

	/**
	 * Returns the meta object for the reference list '{@link de.jadehs.cosima.MultiState#getStates <em>States</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference list '<em>States</em>'.
	 * @see de.jadehs.cosima.MultiState#getStates()
	 * @see #getMultiState()
	 * @generated
	 */
	EReference getMultiState_States();

	/**
	 * Returns the meta object for class '{@link de.jadehs.cosima.Instruction <em>Instruction</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Instruction</em>'.
	 * @see de.jadehs.cosima.Instruction
	 * @generated
	 */
	EClass getInstruction();

	/**
	 * Returns the meta object for class '{@link de.jadehs.cosima.TapeInstruction <em>Tape Instruction</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Tape Instruction</em>'.
	 * @see de.jadehs.cosima.TapeInstruction
	 * @generated
	 */
	EClass getTapeInstruction();

	/**
	 * Returns the meta object for the reference '{@link de.jadehs.cosima.TapeInstruction#getTape <em>Tape</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Tape</em>'.
	 * @see de.jadehs.cosima.TapeInstruction#getTape()
	 * @see #getTapeInstruction()
	 * @generated
	 */
	EReference getTapeInstruction_Tape();

	/**
	 * Returns the meta object for class '{@link de.jadehs.cosima.ReadFromTape <em>Read From Tape</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Read From Tape</em>'.
	 * @see de.jadehs.cosima.ReadFromTape
	 * @generated
	 */
	EClass getReadFromTape();

	/**
	 * Returns the meta object for the attribute '{@link de.jadehs.cosima.ReadFromTape#getSymbol <em>Symbol</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Symbol</em>'.
	 * @see de.jadehs.cosima.ReadFromTape#getSymbol()
	 * @see #getReadFromTape()
	 * @generated
	 */
	EAttribute getReadFromTape_Symbol();

	/**
	 * Returns the meta object for class '{@link de.jadehs.cosima.WriteToTape <em>Write To Tape</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Write To Tape</em>'.
	 * @see de.jadehs.cosima.WriteToTape
	 * @generated
	 */
	EClass getWriteToTape();

	/**
	 * Returns the meta object for the attribute '{@link de.jadehs.cosima.WriteToTape#getSymbol <em>Symbol</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Symbol</em>'.
	 * @see de.jadehs.cosima.WriteToTape#getSymbol()
	 * @see #getWriteToTape()
	 * @generated
	 */
	EAttribute getWriteToTape_Symbol();

	/**
	 * Returns the meta object for class '{@link de.jadehs.cosima.MoveTapeLeft <em>Move Tape Left</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Move Tape Left</em>'.
	 * @see de.jadehs.cosima.MoveTapeLeft
	 * @generated
	 */
	EClass getMoveTapeLeft();

	/**
	 * Returns the meta object for class '{@link de.jadehs.cosima.MoveTapeRight <em>Move Tape Right</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Move Tape Right</em>'.
	 * @see de.jadehs.cosima.MoveTapeRight
	 * @generated
	 */
	EClass getMoveTapeRight();

	/**
	 * Returns the meta object for enum '{@link de.jadehs.cosima.StateType <em>State Type</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for enum '<em>State Type</em>'.
	 * @see de.jadehs.cosima.StateType
	 * @generated
	 */
	EEnum getStateType();

	/**
	 * Returns the factory that creates the instances of the model.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the factory that creates the instances of the model.
	 * @generated
	 */
	CosimaFactory getCosimaFactory();

	/**
	 * <!-- begin-user-doc -->
	 * Defines literals for the meta objects that represent
	 * <ul>
	 *   <li>each class,</li>
	 *   <li>each feature of each class,</li>
	 *   <li>each enum,</li>
	 *   <li>and each data type</li>
	 * </ul>
	 * <!-- end-user-doc -->
	 * @generated
	 */
	interface Literals {
		/**
		 * The meta object literal for the '{@link de.jadehs.cosima.impl.CosimaImpl <em>Cosima</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see de.jadehs.cosima.impl.CosimaImpl
		 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getCosima()
		 * @generated
		 */
		EClass COSIMA = eINSTANCE.getCosima();

		/**
		 * The meta object literal for the '<em><b>Machine</b></em>' containment reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference COSIMA__MACHINE = eINSTANCE.getCosima_Machine();

		/**
		 * The meta object literal for the '<em><b>Programs</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference COSIMA__PROGRAMS = eINSTANCE.getCosima_Programs();

		/**
		 * The meta object literal for the '{@link de.jadehs.cosima.impl.MachineImpl <em>Machine</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see de.jadehs.cosima.impl.MachineImpl
		 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getMachine()
		 * @generated
		 */
		EClass MACHINE = eINSTANCE.getMachine();

		/**
		 * The meta object literal for the '<em><b>Components</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference MACHINE__COMPONENTS = eINSTANCE.getMachine_Components();

		/**
		 * The meta object literal for the '{@link de.jadehs.cosima.impl.ComponentImpl <em>Component</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see de.jadehs.cosima.impl.ComponentImpl
		 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getComponent()
		 * @generated
		 */
		EClass COMPONENT = eINSTANCE.getComponent();

		/**
		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute COMPONENT__NAME = eINSTANCE.getComponent_Name();

		/**
		 * The meta object literal for the '{@link de.jadehs.cosima.impl.TapeImpl <em>Tape</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see de.jadehs.cosima.impl.TapeImpl
		 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getTape()
		 * @generated
		 */
		EClass TAPE = eINSTANCE.getTape();

		/**
		 * The meta object literal for the '<em><b>Position</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute TAPE__POSITION = eINSTANCE.getTape_Position();

		/**
		 * The meta object literal for the '<em><b>Input</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute TAPE__INPUT = eINSTANCE.getTape_Input();

		/**
		 * The meta object literal for the '<em><b>Alphabet</b></em>' attribute list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute TAPE__ALPHABET = eINSTANCE.getTape_Alphabet();

		/**
		 * The meta object literal for the '{@link de.jadehs.cosima.impl.StackImpl <em>Stack</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see de.jadehs.cosima.impl.StackImpl
		 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getStack()
		 * @generated
		 */
		EClass STACK = eINSTANCE.getStack();

		/**
		 * The meta object literal for the '<em><b>Input</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute STACK__INPUT = eINSTANCE.getStack_Input();

		/**
		 * The meta object literal for the '{@link de.jadehs.cosima.impl.StatesRegisterImpl <em>States Register</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see de.jadehs.cosima.impl.StatesRegisterImpl
		 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getStatesRegister()
		 * @generated
		 */
		EClass STATES_REGISTER = eINSTANCE.getStatesRegister();

		/**
		 * The meta object literal for the '<em><b>States</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference STATES_REGISTER__STATES = eINSTANCE.getStatesRegister_States();

		/**
		 * The meta object literal for the '{@link de.jadehs.cosima.impl.StateImpl <em>State</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see de.jadehs.cosima.impl.StateImpl
		 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getState()
		 * @generated
		 */
		EClass STATE = eINSTANCE.getState();

		/**
		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute STATE__NAME = eINSTANCE.getState_Name();

		/**
		 * The meta object literal for the '<em><b>Start</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute STATE__START = eINSTANCE.getState_Start();

		/**
		 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute STATE__TYPE = eINSTANCE.getState_Type();

		/**
		 * The meta object literal for the '{@link de.jadehs.cosima.impl.TransitionsTableImpl <em>Transitions Table</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see de.jadehs.cosima.impl.TransitionsTableImpl
		 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getTransitionsTable()
		 * @generated
		 */
		EClass TRANSITIONS_TABLE = eINSTANCE.getTransitionsTable();

		/**
		 * The meta object literal for the '<em><b>Transitions</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference TRANSITIONS_TABLE__TRANSITIONS = eINSTANCE.getTransitionsTable_Transitions();

		/**
		 * The meta object literal for the '<em><b>Tape</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference TRANSITIONS_TABLE__TAPE = eINSTANCE.getTransitionsTable_Tape();

		/**
		 * The meta object literal for the '<em><b>Active State</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference TRANSITIONS_TABLE__ACTIVE_STATE = eINSTANCE.getTransitionsTable_ActiveState();

		/**
		 * The meta object literal for the '<em><b>States</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference TRANSITIONS_TABLE__STATES = eINSTANCE.getTransitionsTable_States();

		/**
		 * The meta object literal for the '{@link de.jadehs.cosima.impl.RegexImpl <em>Regex</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see de.jadehs.cosima.impl.RegexImpl
		 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getRegex()
		 * @generated
		 */
		EClass REGEX = eINSTANCE.getRegex();

		/**
		 * The meta object literal for the '<em><b>Expression</b></em>' containment reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference REGEX__EXPRESSION = eINSTANCE.getRegex_Expression();

		/**
		 * The meta object literal for the '<em><b>Tape</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference REGEX__TAPE = eINSTANCE.getRegex_Tape();

		/**
		 * The meta object literal for the '{@link de.jadehs.cosima.impl.GrammarImpl <em>Grammar</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see de.jadehs.cosima.impl.GrammarImpl
		 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getGrammar()
		 * @generated
		 */
		EClass GRAMMAR = eINSTANCE.getGrammar();

		/**
		 * The meta object literal for the '{@link de.jadehs.cosima.impl.LoopImpl <em>Loop</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see de.jadehs.cosima.impl.LoopImpl
		 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getLoop()
		 * @generated
		 */
		EClass LOOP = eINSTANCE.getLoop();

		/**
		 * The meta object literal for the '{@link de.jadehs.cosima.impl.WhileImpl <em>While</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see de.jadehs.cosima.impl.WhileImpl
		 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getWhile()
		 * @generated
		 */
		EClass WHILE = eINSTANCE.getWhile();

		/**
		 * The meta object literal for the '{@link de.jadehs.cosima.impl.ProgramImpl <em>Program</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see de.jadehs.cosima.impl.ProgramImpl
		 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getProgram()
		 * @generated
		 */
		EClass PROGRAM = eINSTANCE.getProgram();

		/**
		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute PROGRAM__NAME = eINSTANCE.getProgram_Name();

		/**
		 * The meta object literal for the '{@link de.jadehs.cosima.impl.TransitionImpl <em>Transition</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see de.jadehs.cosima.impl.TransitionImpl
		 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getTransition()
		 * @generated
		 */
		EClass TRANSITION = eINSTANCE.getTransition();

		/**
		 * The meta object literal for the '<em><b>Start</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference TRANSITION__START = eINSTANCE.getTransition_Start();

		/**
		 * The meta object literal for the '<em><b>End</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference TRANSITION__END = eINSTANCE.getTransition_End();

		/**
		 * The meta object literal for the '<em><b>Start Instructions</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference TRANSITION__START_INSTRUCTIONS = eINSTANCE.getTransition_StartInstructions();

		/**
		 * The meta object literal for the '<em><b>End Instructions</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference TRANSITION__END_INSTRUCTIONS = eINSTANCE.getTransition_EndInstructions();

		/**
		 * The meta object literal for the '{@link de.jadehs.cosima.impl.TuringImpl <em>Turing</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see de.jadehs.cosima.impl.TuringImpl
		 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getTuring()
		 * @generated
		 */
		EClass TURING = eINSTANCE.getTuring();

		/**
		 * The meta object literal for the '{@link de.jadehs.cosima.impl.ExpressionImpl <em>Expression</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see de.jadehs.cosima.impl.ExpressionImpl
		 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getExpression()
		 * @generated
		 */
		EClass EXPRESSION = eINSTANCE.getExpression();

		/**
		 * The meta object literal for the '{@link de.jadehs.cosima.impl.ORExpressionImpl <em>OR Expression</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see de.jadehs.cosima.impl.ORExpressionImpl
		 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getORExpression()
		 * @generated
		 */
		EClass OR_EXPRESSION = eINSTANCE.getORExpression();

		/**
		 * The meta object literal for the '<em><b>Left</b></em>' containment reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference OR_EXPRESSION__LEFT = eINSTANCE.getORExpression_Left();

		/**
		 * The meta object literal for the '<em><b>Right</b></em>' containment reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference OR_EXPRESSION__RIGHT = eINSTANCE.getORExpression_Right();

		/**
		 * The meta object literal for the '{@link de.jadehs.cosima.impl.KleeneExpressionImpl <em>Kleene Expression</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see de.jadehs.cosima.impl.KleeneExpressionImpl
		 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getKleeneExpression()
		 * @generated
		 */
		EClass KLEENE_EXPRESSION = eINSTANCE.getKleeneExpression();

		/**
		 * The meta object literal for the '<em><b>Child Expression</b></em>' containment reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference KLEENE_EXPRESSION__CHILD_EXPRESSION = eINSTANCE.getKleeneExpression_ChildExpression();

		/**
		 * The meta object literal for the '{@link de.jadehs.cosima.impl.CharExpressionImpl <em>Char Expression</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see de.jadehs.cosima.impl.CharExpressionImpl
		 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getCharExpression()
		 * @generated
		 */
		EClass CHAR_EXPRESSION = eINSTANCE.getCharExpression();

		/**
		 * The meta object literal for the '<em><b>Input</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute CHAR_EXPRESSION__INPUT = eINSTANCE.getCharExpression_Input();

		/**
		 * The meta object literal for the '{@link de.jadehs.cosima.impl.ANDExpressionImpl <em>AND Expression</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see de.jadehs.cosima.impl.ANDExpressionImpl
		 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getANDExpression()
		 * @generated
		 */
		EClass AND_EXPRESSION = eINSTANCE.getANDExpression();

		/**
		 * The meta object literal for the '<em><b>Left</b></em>' containment reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference AND_EXPRESSION__LEFT = eINSTANCE.getANDExpression_Left();

		/**
		 * The meta object literal for the '<em><b>Right</b></em>' containment reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference AND_EXPRESSION__RIGHT = eINSTANCE.getANDExpression_Right();

		/**
		 * The meta object literal for the '{@link de.jadehs.cosima.impl.StringExpressionImpl <em>String Expression</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see de.jadehs.cosima.impl.StringExpressionImpl
		 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getStringExpression()
		 * @generated
		 */
		EClass STRING_EXPRESSION = eINSTANCE.getStringExpression();

		/**
		 * The meta object literal for the '<em><b>Input</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute STRING_EXPRESSION__INPUT = eINSTANCE.getStringExpression_Input();

		/**
		 * The meta object literal for the '{@link de.jadehs.cosima.impl.MultiStateImpl <em>Multi State</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see de.jadehs.cosima.impl.MultiStateImpl
		 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getMultiState()
		 * @generated
		 */
		EClass MULTI_STATE = eINSTANCE.getMultiState();

		/**
		 * The meta object literal for the '<em><b>States</b></em>' reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference MULTI_STATE__STATES = eINSTANCE.getMultiState_States();

		/**
		 * The meta object literal for the '{@link de.jadehs.cosima.impl.InstructionImpl <em>Instruction</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see de.jadehs.cosima.impl.InstructionImpl
		 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getInstruction()
		 * @generated
		 */
		EClass INSTRUCTION = eINSTANCE.getInstruction();

		/**
		 * The meta object literal for the '{@link de.jadehs.cosima.impl.TapeInstructionImpl <em>Tape Instruction</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see de.jadehs.cosima.impl.TapeInstructionImpl
		 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getTapeInstruction()
		 * @generated
		 */
		EClass TAPE_INSTRUCTION = eINSTANCE.getTapeInstruction();

		/**
		 * The meta object literal for the '<em><b>Tape</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference TAPE_INSTRUCTION__TAPE = eINSTANCE.getTapeInstruction_Tape();

		/**
		 * The meta object literal for the '{@link de.jadehs.cosima.impl.ReadFromTapeImpl <em>Read From Tape</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see de.jadehs.cosima.impl.ReadFromTapeImpl
		 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getReadFromTape()
		 * @generated
		 */
		EClass READ_FROM_TAPE = eINSTANCE.getReadFromTape();

		/**
		 * The meta object literal for the '<em><b>Symbol</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute READ_FROM_TAPE__SYMBOL = eINSTANCE.getReadFromTape_Symbol();

		/**
		 * The meta object literal for the '{@link de.jadehs.cosima.impl.WriteToTapeImpl <em>Write To Tape</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see de.jadehs.cosima.impl.WriteToTapeImpl
		 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getWriteToTape()
		 * @generated
		 */
		EClass WRITE_TO_TAPE = eINSTANCE.getWriteToTape();

		/**
		 * The meta object literal for the '<em><b>Symbol</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute WRITE_TO_TAPE__SYMBOL = eINSTANCE.getWriteToTape_Symbol();

		/**
		 * The meta object literal for the '{@link de.jadehs.cosima.impl.MoveTapeLeftImpl <em>Move Tape Left</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see de.jadehs.cosima.impl.MoveTapeLeftImpl
		 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getMoveTapeLeft()
		 * @generated
		 */
		EClass MOVE_TAPE_LEFT = eINSTANCE.getMoveTapeLeft();

		/**
		 * The meta object literal for the '{@link de.jadehs.cosima.impl.MoveTapeRightImpl <em>Move Tape Right</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see de.jadehs.cosima.impl.MoveTapeRightImpl
		 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getMoveTapeRight()
		 * @generated
		 */
		EClass MOVE_TAPE_RIGHT = eINSTANCE.getMoveTapeRight();

		/**
		 * The meta object literal for the '{@link de.jadehs.cosima.StateType <em>State Type</em>}' enum.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see de.jadehs.cosima.StateType
		 * @see de.jadehs.cosima.impl.CosimaPackageImpl#getStateType()
		 * @generated
		 */
		EEnum STATE_TYPE = eINSTANCE.getStateType();

	}

} //CosimaPackage
